<?php

defined('o') || exit('404 not find file'); //防跳墙
// 调用继承数据库父类
require_once('db.face.php');
// mysql 数据库类
class Mysqlite extends Db {
	private $conn; //数据库对象
	public function __construct($server) {
                if(is_string($server)){
                        $this -> conn = new SQLite3($server);
                }
		
	} 
	public function connect($string_dbname = '') {
		// 重新打开数据库前需关闭之前打开的数据库
		if(!empty($string_dbname)){
                        $this -> conn - close();
		$this -> conn -> open($string_dbname);
                }
	} 
	/**
	 * * * 关闭连接，清理资源
	 */
	public function close() {
		return $this -> conn -> close();
	} 
	/**
	 * * * 返回最新插入ID
	 */public function idlast() {
		return $this -> conn -> lastInsertRowID();
	} 
	/**
	 * 取得前一次 MySQL 操作所影响的记录行数
	 */
	public function affectRow() {
		return $this -> conn -> changes();
	} 
	/**
	 * * * 发送查询语句，返回真或假
	 */public function select($sql) {
		return $this -> conn -> querySingle($sql);
	} 
	/**
	 * * * 发送查询语句返回多行数据(多维)
	 * $string_table  表名
	 * $array_column  需显示的列表字段 
	 * $string_condition  条件
	 */
	public function query_once($string_table, $array_column, $string_condition) {
		$result = $this -> conn -> query('select ' . join(',', $array_column) . ' from ' . $string_table . ' ' . $string_condition . ' LIMIT 1 ');

		if (!empty($result)) {
			while ($row = $result -> fetchArray(SQLITE3_ASSOC)) {
				$array_temp = array();
				for($i = 0;$i < count($array_column);$i++) {
					$array_temp [$array_column[$i]] = $row[$array_column[$i]];
				} 
				$array_resource [] = $array_temp;
			} 
			return $array_resource;
		} else {
			return false;
		} 
	} 
	/**
	 * * * 发送查询语句返回多行数据(多维)
	 * $string_table  表名
	 * $array_column  需显示的列表字段 
	 * $string_condition  条件
	 */
	public function query_many($string_table, $array_column, $string_condition) {
		$result = $this -> conn -> query('select ' . join(',', $array_column) . ' from ' . $string_table . ' ' . $string_condition);

		if (!empty($result)) {
			while ($row = $result -> fetchArray(SQLITE3_ASSOC)) {
				$array_temp = array();
				for($i = 0;$i < count($array_column);$i++) {
					$array_temp [$array_column[$i]] = $row[$array_column[$i]];
				} 
				$array_resource [] = $array_temp; 
				// break;
			} 
			return $array_resource;
		} else {
			return false;
		} 
	} 
	/**
	 * * * 发送插入语句
	 */public function insert($string_table, $array_column) {
		$bools = $this -> conn -> query('insert into ' . $string_table . ' (' . join(',', array_keys($array_column)) . ') values(\'' . join('\',\'', array_values($array_column)) . '\')');

		if ($bools) {
			return $this -> affectRow() > 0 ? $this -> affectRow() : false;
		} 
		return false;
	} 
	/**
	 * * * 发送修改语句
	 */public function update($string_table, $array_column, $string_condition) {
		$vals = array();
		foreach($array_column as $key => $val) {
			$vals[] = $key . '=\'' . $val . '\'';
		} 
		$bools = $this -> conn -> query('update ' . $string_table . ' set ' . join(',', $vals) . 'where ' . $string_condition);
		if ($bools) {
			return $this -> affectRow() > 0 ? $this -> affectRow() : false;
		} 
		return false;
	} 
	/**
	 * * * 删除数据
	 */public function delete_data($string_table, $string_condition) {
		$bools = $this -> conn -> query('delete from ' . $string_table . ' where ' . $string_condition);
		if ($bools) {
			return $this -> affectRow() > 0 ? $this -> affectRow() : false;
		} 
		return false;
	} 
	/**
	 * * * 选择控制的数据库
	 */public function select_db($string_dbname) {
		// 重新打开数据库前需关闭之前打开的数据库
		$this -> conn -> open($string_dbname);
	} 
	/**
	 * 设置数据库编码
	 */
	public function setnames($codename) {
		//return $this -> conn -> querySingle($codename);
	} 
} 

?>